﻿Imports MySql.Data.MySqlClient

Public Class frmUsuarioAlta

    Private Sub btnGuardar_Click(sender As Object, e As EventArgs) Handles btnGuardar.Click

        Try

            If Validar() = False Then
                Exit Sub
            End If

            '    Dim MaxIdUsuario As Integer

            '    'Obtengo el maximo IdMarca
            '    Dim cmd2 As New SqlClient.SqlCommand("Select MAX(IdUsuario) From USUARIOS")
            '    MaxIdUsuario = cn.getScalar(cmd2)
            '    ''-----------------------------

            sql = "INSERT INTO users (username,email, password, nombre, apellido,telefono,skype, rango, activo) VALUES (@username, @email, @password, @nombre, @apellido, @telefono, @skype, @rango, @activo)"

            Dim cmd As New MySql.Data.MySqlClient.MySqlCommand(sql)

            cmd.Parameters.Add("@username", MySqlDbType.VarChar, 50, "username")
            cmd.Parameters.Add("@email", MySqlDbType.VarChar, 50, "email")
            cmd.Parameters.Add("@password", MySqlDbType.VarChar, 50, "password")
            cmd.Parameters.Add("@nombre", MySqlDbType.VarChar, 50, "nombre")
            cmd.Parameters.Add("@apellido", MySqlDbType.VarChar, 50, "apellido")
            cmd.Parameters.Add("@telefono", MySqlDbType.VarChar, 50, "telefono")
            cmd.Parameters.Add("@skype", MySqlDbType.VarChar, 50, "skype")
            'cmd.Parameters.Add("@Clave", MySqlDbType.VarBinary, 100, "Clave")
            cmd.Parameters.Add("@rango", MySqlDbType.Int32, 4, "rango")
            cmd.Parameters.Add("@activo", MySqlDbType.Bit, 1, "activo")

            ''Convierto la clave en un array de tipo byte
            'Dim sStr As String = txtClave.Text.Trim
            'Dim enc As New System.Text.ASCIIEncoding()
            'Dim bArray() As Byte = enc.GetBytes(sStr)

            'cmd.Parameters("@IdUsuario").Value = MaxIdUsuario + 1
            cmd.Parameters("@username").Value = txtUsuario.Text.Trim
            cmd.Parameters("@email").Value = txtEmail.Text.Trim
            cmd.Parameters("@password").Value = txtClave.Text.Trim
            cmd.Parameters("@Nombre").Value = txtNombre.Text.Trim
            cmd.Parameters("@apellido").Value = txtApellido.Text.Trim
            cmd.Parameters("@telefono").Value = txtTelefono.Text.Trim
            cmd.Parameters("@skype").Value = txtSkype.Text.Trim
            'cmd.Parameters("@Clave").Value = bArray
            cmd.Parameters("@rango").Value = cboRango.SelectedValue
            cmd.Parameters("@activo").Value = chkActivo.Checked

            cn.ExecNonQuery(cmd)

            DatosGuardadosCorrectamente()

            Me.Close()
            Me.Dispose()

        Catch ex As Exception
            MensajeError()
        End Try
    End Sub

    Private Function Validar() As Boolean

        If txtUsuario.Text.Trim = "" Then
            MsgBox("Debe ingresar una usuario", MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation, "Atención")
            txtUsuario.Focus()
            Return False
        End If

        If txtClave.Text.Trim = "" Then
            MsgBox("Debe ingresar una clave", MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation, "Atención")
            txtClave.Focus()
            Return False
        End If

        If txtEmail.Text.Trim <> "" And General.General.ValidarEmail(txtEmail.Text.Trim) = False Then
            MsgBox("Debe ingresar un email válido", MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation, "Atención")
            txtEmail.Focus()
            Return False
        End If

        If txtEmail.Text.Trim <> "" Then
            Dim cmd As New MySql.Data.MySqlClient.MySqlCommand("Select email From users Where email='" & Trim(txtEmail.Text.Trim) & "'")
            If Not IsNothing(cn.getScalar(cmd)) Then
                MsgBox("El email ingresado ya existe", MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, "Atención")
                txtEmail.Focus()
                Return False
            End If
        End If

        If txtNombre.Text.Trim = "" Then
            MsgBox("Debe ingresar un nombre", MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation, "Atención")
            txtNombre.Focus()
            Return False
        End If

        If txtApellido.Text.Trim = "" Then
            MsgBox("Debe ingresar un apellido", MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation, "Atención")
            txtApellido.Focus()
            Return False
        End If

        If cboRango.SelectedIndex = 0 Then
            MsgBox("Debe seleccionar un Rango", MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation, "Atención")
            cboRango.Focus()
            Return False
        End If

        Return True

    End Function

    Private Sub txtNombre_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtNombre.KeyPress
        'clsGeneral.clsGeneral.Mayuscula(txtNombre, e)
    End Sub

    Private Sub frmUsuarioAlta_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        cn.CargarCombo(cboRango, "Select id As Id,name As Nombre From roles Order By Name", True, False)
    End Sub

End Class